<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Login</title>
  <style>
    * {
      margin: 0;
      padding: 0;
      text-decoration: none;
      font-family: montserrat;
      box-sizing: border-box;
    }

    body {
      min-height: 100vh;
      background-image: linear-gradient(120deg, #3498db, #8e44ad);
    }

    .login-form {
      width: 360px;
      background: #f1f1f1;
      height: 580px;
      padding: 80px 40px;
      border-radius: 10px;
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
    }

    @media (max-width: 768px) {
      .login-form {
        width: 100%;
        height: 100%;
        border-radius: 0;
      }
    }

    .login-form h1 {
      text-align: center;
      margin-bottom: 60px;
    }

    .txtb {
      border-bottom: 2px solid #adadad;
      position: relative;
      margin: 30px 0;
    }

    .txtb input {
      font-size: 15px;
      color: #333;
      border: none;
      outline: none;
      background: none;
      padding: 0 5px;
      height: 40px;
      width: 100%;
    }

    .txtb span::before {
      content: attr(data-placeholder);
      position: absolute;
      top: 50%;
      /* 和 input 的 padding-left 保持一致*/
      left: 5px;
      transform: translateY(-50%);
      color: #adadad;
      z-index: -1;
      transition: .5s;
    }

    .txtb span::after {
      content: '';
      position: absolute;
      left: 0;
      top: 100%;
      width: 0%;
      height: 2px;
      background: linear-gradient(120deg, #3498db, #8e44ad);
      transition: .5s;
    }

    .focus+span::before {
      top: -5px;
    }

    .focus+span::after {
      width: 100%;
    }

    .logbtn {
      display: block;
      width: 100%;
      height: 50px;
      border: none;
      background: linear-gradient(120deg, #3498db, #8e44ad, #3498db);
      color: #fff;
      background-size: 200%;
      outline: none;
      transition: .5s;
      cursor: pointer;
    }

    .logbtn:hover {
      background-position: right;
    }

    .bottom-text {
      margin-top: 60px;
      text-align: center;
      font-size: 14px;
    }
  </style>
</head>

<body>
  <form class="login-form">
    <h1>Login</h1>

    <div class="txtb">
      <input type="text">
      <span data-placeholder="Username"></span>
    </div>

    <div class="txtb">
      <input type="password">
      <span data-placeholder="Password"></span>
    </div>

    <input type="submit" class="logbtn" value="Login">

    <div class="bottom-text">
      Don't have account? <a href="#">Sing up</a>
    </div>
  </form>
  <script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js"></script>
  <script>
    $('.txtb input').on('focus', function () {
      if ($(this).val() === '') {
        $(this).addClass('focus')
      }
    })
    $('.txtb input').on('blur', function () {
      if ($(this).val() === '') {
        $(this).removeClass('focus')
      }
    })
  </script>
</body>

</html>